﻿using EntityFramework.Entity.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YouTravel.Framework.Enums;

namespace YouTravel.DomainModels
{
    /// <summary>
    /// 发票信息
    /// </summary>
    public class Invoice : EntityBase
    {
        /// <summary>
        /// 发票抬头
        /// </summary>
        public string Title { get; set; }
        /// <summary>
        /// 发票明细
        /// josn格式
        /// </summary>
        public string Content { get; set; }
        /// <summary>
        /// 发票金额
        /// </summary>
        public decimal Money { get; set; }
        /// <summary>
        /// 票面日期
        /// </summary>
        public DateTime ParValueTime { get; set; }
        /// <summary>
        /// 发票状态
        /// </summary>
        public InvoiceStatus Status { get; set; }
        /// <summary>
        /// 签约专线编号
        /// </summary>
        public int SpecialId { get; set; }
        /// <summary>
        /// 签约专线
        /// </summary>
        public virtual Special Special { get; set; }
        /// <summary>
        /// 专线名称
        /// </summary>
        public string SpecialName { get; set; }
        /// <summary>
        /// 销售商编号
        /// </summary>
        public int SellerId { get; set; }
        /// <summary>
        /// 销售商
        /// </summary>
        public virtual SellerSupplier SellerSupplier { get; set; }
        /// <summary>
        /// 快递ID
        /// </summary>
        public int? ExpressId { get; set; }
        /// <summary>
        /// 快递记录表
        /// </summary>
        public virtual Express Express { get; set; }
        /// <summary>
        /// 申请人Id
        /// </summary>
        public int ApplicantId { get; set; }
        /// <summary>
        /// 申请人
        /// </summary>
        public virtual User Applicant { get; set; }
        /// <summary>
        /// 申请人姓名
        /// </summary>
        public string ApplicantName { get; set; }
        /// <summary>
        /// 申请时间
        /// </summary>
        public DateTime ApplicationTime { get; set; }
        /// <summary>
        /// 开具人ID
        /// </summary>
        public int? AuditorId { get; set; }
        /// <summary>
        /// 开具人
        /// </summary>
        public virtual User Auditor { get; set; }
        /// <summary>
        /// 开具人姓名
        /// </summary>
        public string AuditorName { get; set; }
        /// <summary>
        /// 开具时间
        /// </summary>
        public DateTime? AuditTime { get; set; }
        /// <summary>
        /// 开具备注（审核备注）
        /// </summary>
        public string AuditRemark { get; set; }
    }
}
